<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class productoModel extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    function obtener_todos_productos() {
        //se guarda en data las tuplas retornadas
        $data = $this->db->get('producto');

        //se comprueba si se obtiene algun resultado y se retorna
        if ($data->num_rows() > 0) {
            return $data;
        } else {
            return FALSE;
        }
    }

    function obtener_producto($pro_id) {
        //creamos un array vacio.       
        $data = array();

        //consultamos la base de datos
        $this->db->select();
        $this->db->where('producto_id', $pro_id);

        /* nos aseguramos que pare de buscar cuando encuentre el primer resultado
          porque solo busca una tupla */
        $this->db->limit(1);

        //guardamos el resultado en la variable consulta
        $consulta = $this->db->get('producto');

        //si retorna algo se asigna a data
        if ($consulta->num_rows() > 0) {
            $data = $consulta->first_row('array');
        }

        //se libera la variable consulta
        $consulta->free_result();
        return $data;
    }

    function crear_producto($data, $pro_id = null) {
        /* si el id del libro es nulo, entonces los datos que llegan 
          dentro de la variable data corresponden a un nuevo libro,
          de lo contrario corresponden a uno ya existente y se hace
          una actualizacion con el contenido de data */
        $data['categoria_id'] = $this->input->post('listaCategorias');
        if ($pro_id == null) {
            $this->db->insert('producto', $data);
        } else {
            $this->db->where('producto_id', $pro_id);
            $this->db->update('producto', $data);
        }
    }

    function eliminar_producto($pro_id) {
        //realizamos la consulta
        $this->db->where('producto_id', $pro_id);
        $this->db->limit(1);

        //se hace el delete sobre el resultado de la consulta
        $this->db->delete('producto');
        return true;
    }
    
    function visualizar_producto($pro_id) {
        //realizamos la consulta
        $sql = "SELECT * FROM producto p NATURAL JOIN categoria c where p.producto_id = ".$pro_id;
        $consulta = $this->db->query($sql);

        if ($consulta->num_rows() > 0) {
            return $consulta->first_row('array');
        } else {
            return false;
        }
    }
    
}
